Event Sourcing
Event Sourcing ensures that all changes to application state are stored as a sequence of events.

Instead of storing just the current state of the data in a domain, use an append-only store to record the full series of actions taken on that data.